home *** CD-ROM | disk | FTP | other *** search
- %%
- %% This is file `psfrag.pro',
- %% generated with the docstrip utility.
- %%
- %% The original source files were:
- %%
- %% psfrag.dtx (with options: `filepro')
- %%
- %% Copyright (c) 1996 Craig Barratt, Michael C. Grant, and David Carlisle.
- %% All rights reserved.
- %%
- %% This file is part of the PSfrag package.
- %%
- userdict begin
- /PSfragLib 90 dict def
- /PSfragDict 6 dict def
- /PSfrag { PSfragLib begin load exec end } bind def
- end
- PSfragLib begin
- /RO /readonly load def
- /CP /currentpoint load def
- /CM /currentmatrix load def
- /B { bind RO def } bind def
- /X { exch def } B
- /MD { { X } forall } B
- /OE { end exec PSfragLib begin } B
- /tstr 8 string def
- /islev2 { languagelevel } stopped { false } { 2 ge } ifelse def
- [ /tM /srcM /dstM /dM /idM /srcFM /dstFM ] { matrix def } forall
- dM defaultmatrix RO idM invertmatrix RO pop
- srcFM identmatrix pop
- /Hide { gsave { CP } stopped not newpath clip { moveto } if } B
- /Unhide { { CP } stopped not grestore { moveto } if } B
- /setrepl islev2 {{ /glob currentglobal def true setglobal array astore
- globaldict exch /PSfrags exch put glob setglobal }}
- {{ array astore /PSfrags X }} ifelse B
- /getrepl islev2 {{ globaldict /PSfrags get aload length }}
- {{ PSfrags aload length }} ifelse B
- /convert {
- /src X src length string
- /c 0 def src length {
- dup c src c get dup 32 lt { pop 32 } if put /c c 1 add def
- } repeat
- } B
- /Begin {
- /saver save def
- srcFM exch 3 exch put
- 0 ne /debugMode X 0 setrepl
- dup /S exch dict def { S 3 1 roll exch convert exch put } repeat
- srcM CM dup invertmatrix pop
- mark { currentdict { end } stopped { pop exit } if } loop
- PSfragDict counttomark { begin } repeat pop
- } B
- /End {
- mark { currentdict end dup PSfragDict eq { pop exit } if } loop
- counttomark { begin } repeat pop
- getrepl saver restore
- 7 idiv dup /S exch dict def {
- 6 array astore /mtrx X tstr cvs /K X
- S K [ S K known { S K get aload pop } if mtrx ] put
- } repeat
- } B
- /Place {
- tstr cvs /K X
- S K known {
- bind /proc X tM CM pop
- CP /cY X /cX X
- 0 0 transform idtransform neg /aY X neg /aX X
- S K get dup length /maxiter X
- /iter 1 def {
- iter maxiter ne { /saver save def } if
- tM setmatrix aX aY translate
- [ exch aload pop idtransform ] concat
- cX neg cY neg translate cX cY moveto
- /proc load OE
- iter maxiter ne { saver restore /iter iter 1 add def } if
- } forall
- /noXY { CP /cY X /cX X } stopped def
- tM setmatrix noXY { newpath } { cX cY moveto } ifelse
- } {
- Hide OE Unhide
- } ifelse
- } B
- /normalize {
- 2 index dup mul 2 index dup mul add sqrt div
- dup 4 -1 roll exch mul 3 1 roll mul
- } B
- /replace {
- aload pop MD
- CP /bY X /lX X gsave initmatrix
- str stringwidth abs exch abs add dup 0 eq
- { pop } { 360 exch div dup scale } ifelse
- lX neg bY neg translate newpath lX bY moveto
- str { /ch X ( ) dup 0 ch put false charpath ch Kproc } forall
- flattenpath pathbbox [ /uY /uX /lY /lX ] MD
- CP grestore moveto
- currentfont /FontMatrix get dstFM copy dup
- 0 get 0 lt { uX lX /uX X /lX X } if
- 3 get 0 lt { uY lY /uY X /lY X } if
- /cX uX lX add 0.5 mul def
- /cY uY lY add 0.5 mul def
- debugMode { gsave 0 setgray 1 setlinewidth
- lX lY moveto lX uY lineto uX uY lineto uX lY lineto closepath
- lX bY moveto uX bY lineto lX cY moveto uX cY lineto
- cX lY moveto cX uY lineto stroke
- grestore } if
- dstFM dup invertmatrix dstM CM srcM
- 2 { dstM concatmatrix } repeat pop
- getrepl /temp X
- S str convert get {
- aload pop [ /rot /scl /loc /K ] MD
- /aX cX def /aY cY def
- loc {
- dup 66 eq { /aY bY def } { % B
- dup 98 eq { /aY lY def } { % b
- dup 108 eq { /aX lX def } { % l
- dup 114 eq { /aX uX def } { % r
- dup 116 eq { /aY uY def } % t
- if } ifelse } ifelse } ifelse } ifelse pop
- } forall
- K srcFM rot tM rotate dstM
- 2 { tM concatmatrix } repeat aload pop pop pop
- 2 { scl normalize 4 2 roll } repeat
- aX aY transform
- /temp temp 7 add def
- } forall
- temp setrepl
- } B
- /Rif {
- S 3 index convert known { pop replace } { exch pop OE } ifelse
- } B
- /XA { bind [ /Kproc /str } B /XC { ] 2 array astore def } B
- /xs { pop } XA XC
- /xks { /kern load OE } XA /kern XC
- /xas { pop ax ay rmoveto } XA /ay /ax XC
- /xws { c eq { cx cy rmoveto } if } XA /c /cy /cx XC
- /xaws { ax ay rmoveto c eq { cx cy rmoveto } if }
- XA /ay /ax /c /cy /cx XC
- /raws { xaws { awidthshow } Rif } B
- /rws { xws { widthshow } Rif } B
- /rks { xks { kshow } Rif } B
- /ras { xas { ashow } Rif } B
- /rs { xs { show } Rif } B
- /rrs { getrepl dup 2 add -1 roll restore setrepl } B
- PSfragDict begin
- islev2 not { /restore { /rrs PSfrag } B } if
- /show { /rs PSfrag } B
- /kshow { /rks PSfrag } B
- /ashow { /ras PSfrag } B
- /widthshow { /rws PSfrag } B
- /awidthshow { /raws PSfrag } B
- end PSfragDict RO pop
- end
-
-